import java.util.Random;
import java.util.Scanner;

public class LogicalControl {

    public static void main1(String[] args) {
        //if-else
        //eg：判断奇数、偶数
        int num = 10;
        if(num % 2 == 0){
            System.out.println(num + "是偶数");
        }
        else{
            System.out.println(num + "是奇数");
        }
        //else 始终与最近且尚未匹配的 if 匹配
        int a = 10, b=6;
        if (a > b) {
            if (a > 8) {
                System.out.println("A");
            }
        } else {  // else 属于外层 if(条件1)
            System.out.println("B");
        }

        System.out.println("======================");
        //switch
        //语法
        //表达式/变量 处 不能用float、double、long类型
        //switch (表达式/变量) {
        //    case 值1:
        //        // 代码块
        //        break;
        //    case 值2:
        //        // 代码块
        //        break;
        //    default:
        //        // 默认代码块如果前面的条件不满足，执行default:内的代码
        //}不加break会，继续执行下一个case中的语句
//        int day = 5;
//        switch(day) {
//            case 1:
//                System.out.println("星期一");
//                break;
//            case 2:
//                System.out.println("星期二");
//                break;
//            case 3:
//                System.out.println("星期三");
//                break;
//            case 4:
//                System.out.println("星期四");
//                break;
//            case 5:
//                System.out.println("星期五");
//                break;
//            case 6:
//                System.out.println("星期六");
//                break;
//            case 7:
//                System.out.println("星期天");
//                break;
//            default:
//                System.out.println("输入有误");
//                break;
//        }

        //  当多个case中的语句内容相同时，可以合并
        //当1~5 是工作日，6~7是休息日时，1~5的可以并写
        int day = 4;
        switch(day) {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("工作日");
                break;
            case 6:
            case 7:
                System.out.println("休息日");
                break;
            default:
                System.out.println("输入有误");
                break;
        }
    }

    public static void main2(String[] args) {
        //while
//        while (条件) {
//            // 循环体
//        }
        //eg:求一个数的位数
        int num = 845;
        int count = 0;//记录位数
        int temp = num;
        while (temp != 0){
            temp /= 10;
            count++;
        }
        System.out.println("count：" + count);

        System.out.println("======================");
        //for
//        for(表达式1;表达式2;表达式3){
//            循环体;
//        }
        //eg: 阶乘
        int sum = 1;
        for (int i = 1; i <= 5; i++) {
            sum *= i;
        }
        System.out.println("5的阶乘：" + sum);
        //break退出循环
        for (int i = 0; i < 5; i++) {
            if(i == 3){
                System.out.println("i = " + i);
                break;
            }
        }

        System.out.println("=======do-while循环========");
        //do-while循环
        // 先执行循环体，再判断条件。至少执行1次
        int m = 5;
        do{
            System.out.println("do-while循环");
        }while(m<3);

        //continu：跳过本次循环，进入下次循环
        //打印 100 ~ 200 内，即可被3整除，也可以被4整除的数
        int i = 100;
        while(i<=200){
            if(!(i % 3 == 0 && i % 4 == 0)){
                i++;
                continue;
            }
            System.out.println(i);
            i++;
        }
        Scanner scan = new Scanner(System.in);
        scan.hasNextInt();

    }

    public static void main3(String[] args) {
        //输入/输出
        //创建一个 Scanner 对象
        Scanner scanner = new Scanner(System.in);//通过 System.in 可以读取来自键盘的用户输入。
//        System.out.println("请输入一个数字");//输出
//        //读取用户输入
//        int num = scanner.nextInt();//输入
//        System.out.println("num = " + num);

        System.out.println("======================");
        //当连续读取到两种不同类型的数据时，需要处理输入缓冲区的内容，会导致出现意外结果
        System.out.println("请输入一个数字 x");
        int a = scanner.nextInt();
        System.out.println("a = " + a);

        scanner.nextLine();//清空输入缓冲区

        System.out.println("请输入一个字符串 str");
        String str = scanner.nextLine();
        System.out.println("str = " + str);

    }
    public static void gameLogic() {
        int num = 0;
        Random random = new Random();// 默认随机种子是系统时间
        Scanner scf = new Scanner(System.in);
        int guessNumber = random.nextInt(100) + 1;//1~100
        while (true) {
            System.out.println("请输入一个1~100之间的数字");
            num = scf.nextInt();
            if (guessNumber == num) {
                System.out.println("恭喜你猜对了");
                break;
            } else if (num > guessNumber) {
                System.out.println("你猜大了");
            } else {
                System.out.println("你猜小了");
            }
        }
    }
    public static void main(String[] args) {
        //猜数字
        System.out.println("请输入选项：0-退出，1-开始游戏");
        Scanner sc = new Scanner(System.in);
        int chose = sc.nextInt();
        switch(chose){
            case 0:
                System.out.println(" 退出游戏 ");
                break;
            case 1:
                System.out.println(" 开始游戏 ");
                gameLogic();
                break;
            default:
                System.out.println("选择无效");
        }

        sc.close();

        }
}